/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.examples.modules.minicomposer;
import java.io.IOException;
import org.openide.TopManager;
import org.openide.cookies.*;
import org.openide.loaders.*;
import org.openide.windows.CloneableTopComponent;
public class ScoreOpenSupport extends OpenSupport implements OpenCookie, CloseCookie {
public ScoreOpenSupport (MultiDataObject.Entry entry) {
super (entry);
}
boolean isOpen () {
return ! allEditors.isEmpty ();
}
protected boolean canClose () {
if (! super.canClose ()) {
return false;
}
DataObject dob = entry.getDataObject ();
if (! dob.isModified ()) {
return true;
}
EditorCookie editor = (EditorCookie) dob.getCookie (EditorCookie.class);
if (editor != null && editor.getOpenedPanes () != null) {
return true;
}
ScoreEditorSupport ses = (ScoreEditorSupport) dob.getCookie (ScoreEditorSupport.class);
if (ses == null) {
System.err.println("WARNING: closing modified file, cannot save");
return true;
}
boolean sesCanClose = ses.superCanClose ();
if (sesCanClose) ses.close ();
return sesCanClose;
}
protected CloneableTopComponent createCloneableTopComponent () {
return new ScorePanel (entry);
}
}